<?php
/**
 * Autor:   Miguel A. Zilli
 * Email:   miguelzilli@gmail.com
 */

class InformesController extends AppController {
    var $name='Informes';
    var $uses=array('Productor','Acoproduccion','Localidad');
    var $helpers = array('Ajax','Javascript','Number');
    var $components = array('RequestHandler');

    function beforeFilter() {
        parent::beforeFilter();
        $this->__checkAdmin();
    }

    function index() {

    }

    /*
     * intenciones 1: intenciones de siembra no algodoneras
     */
    function intenciones_productor_1() {
        Configure::write('debug','0');
        if(!$this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 0);
            $this->Session->del('Busqueda');
            $buscar_por='cuit';
            $campania='';
        }
        $condiciones = $filtro = '';
        if (isset($this->data['Busqueda']['filtro'])) {
            $filtro = trim($this->data['Busqueda']['filtro']);
            $buscar_por = $this->data['Busqueda']['buscar_por'];
            $campania = $this->data['Busqueda']['campania'];
        }elseif (!empty($this->data['Busqueda']['filtro']) &&
            $this->data['Busqueda']['filtro'] == '') {
            $this->Session->del('Busqueda.filtro');
        }elseif ($this->Session->check('Busqueda.filtro')) {
            $filtro = $this->Session->read('Busqueda.filtro');
            $buscar_por = $this->Session->read('Busqueda.buscar_por');
            $campania = $this->Session->read('Busqueda.campania');
        }
        $condiciones['Productor.id']=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_AGRICOLA),
            'group'=>'ActividadtiposProductor.productor_id'
        ));
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $condiciones['OR']=array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'localidad':
                    $condiciones['OR']=array(
                        'Localidad.nombre_loc LIKE'=>"%$filtro%",
                        'Productor.col_paraje_prod LIKE'=>"%$filtro%"
                    );
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $this->Session->write('Busqueda.campania', $campania);
        $fields=array(
            'Productor.id', 'Productor.cuit_prod',
            'Productor.apellido_prod', 'Productor.nombre_prod',
            'Productor.localidad_id', 'Localidad.nombre_loc'
        );
        $this->paginate=array(
            'Productor'=>array(
            'fields'=>$fields,
            'limit'=>'50',
            'order'=>array('Productor.apellido_prod'=>'ASC','Productor.nombre_prod'=>'ASC','Productor.cuit_prod'=>'ASC')
        ));
        $productores_tmp=$this->paginate('Productor', $condiciones);
        if($productores_tmp) {
            foreach ($productores_tmp as $tmp) {
                $productores[]=array_merge($tmp,(array)$this->Acoproduccion->find('first',array(
                    'fields'=>array('SUM(`Acoproduccion`.`sup_prod`) AS `intencion`'),
                    'conditions'=>array(
                    'Acoproduccion.productor_id'=>$tmp['Productor']['id'],
                    'Acoproduccion.campania_prod'=>$campania,
                    'Producto.nombre_prod <>'=>'ALGODON'
                    ),
                    'group'=>'Acoproduccion.productor_id'
                )));
            }
            $this->set('infos', $productores);
        }
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','localidad'=>'Localidad/Colonia'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));
        $this->set('campanias',$this->CAMPANIAS);

        if($this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 1);
            $this->render('/elements/update_info_intenciones_productor_1', 'ajax');
        }
    }

    /*
     * intenciones 2: intenciones de siembra solo algodoneras
     */
    function intenciones_productor_2() {
        Configure::write('debug','0');
        if(!$this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 0);
            $this->Session->del('Busqueda');
            $buscar_por='cuit';
            $campania='';
        }
        $condiciones = $filtro = '';
        if (isset($this->data['Busqueda']['filtro'])) {
            $filtro = trim($this->data['Busqueda']['filtro']);
            $buscar_por = $this->data['Busqueda']['buscar_por'];
            $campania = $this->data['Busqueda']['campania'];
        }elseif (!empty($this->data['Busqueda']['filtro']) &&
            $this->data['Busqueda']['filtro'] == '') {
            $this->Session->del('Busqueda.filtro');
        }elseif ($this->Session->check('Busqueda.filtro')) {
            $filtro = $this->Session->read('Busqueda.filtro');
            $buscar_por = $this->Session->read('Busqueda.buscar_por');
            $campania = $this->Session->read('Busqueda.campania');
        }
        $condiciones['Productor.id']=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_AGRICOLA),
            'group'=>'ActividadtiposProductor.productor_id'
        ));
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $condiciones['OR']=array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'localidad':
                    $condiciones['OR']=array(
                        'Localidad.nombre_loc LIKE'=>"%$filtro%",
                        'Productor.col_paraje_prod LIKE'=>"%$filtro%"
                    );
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $this->Session->write('Busqueda.campania', $campania);
        $fields=array(
            'Productor.id', 'Productor.cuit_prod',
            'Productor.apellido_prod', 'Productor.nombre_prod',
            'Productor.localidad_id', 'Localidad.nombre_loc'
        );
        $this->paginate=array(
            'Productor'=>array(
            'fields'=>$fields,
            'limit'=>'50',
            'order'=>array('Productor.apellido_prod'=>'ASC','Productor.nombre_prod'=>'ASC','Productor.cuit_prod'=>'ASC')
        ));
        $productores_tmp=$this->paginate('Productor', $condiciones);
        if($productores_tmp) {
            foreach ($productores_tmp as $tmp) {
                $productores[]=array_merge($tmp,(array)$this->Acoproduccion->find('first',array(
                    'fields'=>array('SUM(`Acoproduccion`.`sup_prod`) AS `intencion`'),
                    'conditions'=>array(
                    'Acoproduccion.productor_id'=>$tmp['Productor']['id'],
                    'Acoproduccion.campania_prod'=>$campania,
                    'Producto.nombre_prod'=>'ALGODON'
                    ),
                    'group'=>'Acoproduccion.productor_id'
                )));
            }
            $this->set('infos', $productores);
        }
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','localidad'=>'Localidad/Colonia'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));
        $this->set('campanias',$this->CAMPANIAS);

        if($this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 1);
            $this->render('/elements/update_info_intenciones_productor_2', 'ajax');
        }
    }

    function intenciones_productor_2bis() {
        Configure::write('debug','0');
        if(!$this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 0);
            $this->Session->del('Busqueda');
            $buscar_por='cuit';
            $campania='';
        }
        $condiciones = $filtro = '';
        if (isset($this->data['Busqueda']['filtro'])) {
            $filtro = trim($this->data['Busqueda']['filtro']);
            $buscar_por = $this->data['Busqueda']['buscar_por'];
            $campania = $this->data['Busqueda']['campania'];
        }elseif (!empty($this->data['Busqueda']['filtro']) &&
            $this->data['Busqueda']['filtro'] == '') {
            $this->Session->del('Busqueda.filtro');
        }elseif ($this->Session->check('Busqueda.filtro')) {
            $filtro = $this->Session->read('Busqueda.filtro');
            $buscar_por = $this->Session->read('Busqueda.buscar_por');
            $campania = $this->Session->read('Busqueda.campania');
        }
        $condiciones['Producto.nombre_prod LIKE']='%ALGOD%N%';
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $condiciones['OR']=array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'localidad':
                    $localidades_ids=$this->Localidad->find('list',array(
                        'fields'=>'Localidad.id',
                        'conditions'=>array('Localidad.nombre_loc LIKE'=>"%$filtro%")
                    ));
                    $condiciones['OR']=array(
                        'Productor.localidad_id'=>$localidades_ids,
                        'Productor.col_paraje_prod LIKE'=>"%$filtro%"
                    );
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $this->Session->write('Busqueda.campania', $campania);
        $fields=array(
            'Productor.id', 'Productor.cuit_prod',
            'Productor.apellido_prod', 'Productor.nombre_prod',
            'Productor.localidad_id',
            'SUM(`Acoproduccion`.`sup_prod`) AS `intencion`'
        );
        $this->paginate=array(
            'Acoproduccion'=>array(
            'fields'=>$fields,
            'limit'=>'90',
            'group'=>'Acoproduccion.productor_id',
            'order'=>array('Productor.apellido_prod'=>'ASC','Productor.nombre_prod'=>'ASC','Productor.cuit_prod'=>'ASC')
        ));
        $productores_tmp=$this->paginate('Acoproduccion', $condiciones);
        if ($productores_tmp) {
            foreach($productores_tmp as $tmp) {
                $productores[]=$tmp+$this->Localidad->find('first',array(
                    'fields'=>'Localidad.nombre_loc',
                    'conditions'=>array('Localidad.id'=>$tmp['Productor']['localidad_id'])
                ));
            }
        }
        $this->set('infos', $productores);
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','localidad'=>'Localidad/Colonia'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));
        $this->set('campanias',$this->CAMPANIAS);

        if($this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 1);
            $this->render('/elements/update_info_intenciones_productor_2bis', 'ajax');
        }
    }

    /*
     * intenciones 3: intenciones de siembra todos los cultivos
     */
    function intenciones_productor_3() {
        Configure::write('debug','0');
        if(!$this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 0);
            $this->Session->del('Busqueda');
            $buscar_por='cuit';
            $campania='';
        }
        $condiciones = $filtro = '';
        if (isset($this->data['Busqueda']['filtro'])) {
            $filtro = trim($this->data['Busqueda']['filtro']);
            $buscar_por = $this->data['Busqueda']['buscar_por'];
            $campania = $this->data['Busqueda']['campania'];
        }elseif (!empty($this->data['Busqueda']['filtro']) &&
            $this->data['Busqueda']['filtro'] == '') {
            $this->Session->del('Busqueda.filtro');
        }elseif ($this->Session->check('Busqueda.filtro')) {
            $filtro = $this->Session->read('Busqueda.filtro');
            $buscar_por = $this->Session->read('Busqueda.buscar_por');
            $campania = $this->Session->read('Busqueda.campania');
        }
        $condiciones['Productor.id']=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_AGRICOLA),
            'group'=>'ActividadtiposProductor.productor_id'
        ));
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $condiciones['OR']=array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'localidad':
                    $condiciones['OR']=array(
                        'Localidad.nombre_loc LIKE'=>"%$filtro%",
                        'Productor.col_paraje_prod LIKE'=>"%$filtro%"
                    );
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $this->Session->write('Busqueda.campania', $campania);
        $fields=array(
            'Productor.id', 'Productor.cuit_prod',
            'Productor.apellido_prod', 'Productor.nombre_prod',
            'Productor.localidad_id', 'Localidad.nombre_loc'
        );
        $this->paginate=array(
            'Productor'=>array(
            'fields'=>$fields,
            'limit'=>'50',
            'order'=>array('Productor.apellido_prod'=>'ASC','Productor.nombre_prod'=>'ASC','Productor.cuit_prod'=>'ASC')
        ));
        $productores_tmp=$this->paginate('Productor', $condiciones);
        if($productores_tmp) {
            foreach ($productores_tmp as $tmp) {
                $productores[]=array_merge($tmp,(array)$this->Acoproduccion->find('first',array(
                    'fields'=>array('SUM(`Acoproduccion`.`sup_prod`) AS `intencion`'),
                    'conditions'=>array(
                    'Acoproduccion.productor_id'=>$tmp['Productor']['id'],
                    'Acoproduccion.campania_prod'=>$campania
                    ),
                    'group'=>'Acoproduccion.productor_id'
                )));
            }
            $this->set('infos', $productores);
        }
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','localidad'=>'Localidad/Colonia'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));
        $this->set('campanias',$this->CAMPANIAS);

        if($this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 1);
            $this->render('/elements/update_info_intenciones_productor_3', 'ajax');
        }
    }
}
?>